home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vb_clk2 / frm_clk.frm < prev    next >
Text File  |  1995-09-06  |  7KB  |  227 lines

  1. VERSION 2.00
  2. Begin Form FRM_Clock 
  3.    AutoRedraw      =   -1  'True
  4.    BorderStyle     =   0  'None
  5.    ClientHeight    =   240
  6.    ClientLeft      =   7260
  7.    ClientTop       =   5790
  8.    ClientWidth     =   1560
  9.    ControlBox      =   0   'False
  10.    Height          =   645
  11.    Icon            =   FRM_CLK.FRX:0000
  12.    Left            =   7200
  13.    LinkMode        =   1  'Source
  14.    LinkTopic       =   "Form1"
  15.    MaxButton       =   0   'False
  16.    MinButton       =   0   'False
  17.    ScaleHeight     =   240
  18.    ScaleWidth      =   1560
  19.    Top             =   5445
  20.    Width           =   1680
  21.    Begin Timer Timer1 
  22.       Interval        =   500
  23.       Left            =   0
  24.       Top             =   0
  25.    End
  26. End
  27. DefInt A-Z
  28. Dim IniFile$
  29. Dim MyRect As RECT
  30. Dim AllowFormToMove
  31. Dim MStartX
  32. Dim MStartY
  33. Dim ClassName As String * 15
  34. Dim cn$
  35. Dim Wnd As Integer
  36.  
  37. Sub DisplayInfo ()
  38.     If IsFloat Then
  39.         Wnd = WindowFromPoint(15, 15)
  40.         If (Wnd > 0) And (Wnd <> FRM_Clock.hWnd) Then
  41.             b% = GetClassName(Wnd, ClassName, 15)
  42.             cn$ = TrimZeroTerm(ClassName)
  43.             If cn$ <> "BlankerClass" Then GetWindowRect Wnd, MyRect
  44.             
  45.             If (MyRect.Left = 0) And (MyRect.Top = 0) And (cn$ = "NFMWClass" Or cn$ = "#32769") Then
  46.                 MyRect.Right = MyRect.Right + 4
  47.                 MyRect.Top = -4
  48.             End If
  49.             
  50.             FRM_Clock.Left = Pixels_To_Twips(MyRect.Right) - (FRM_Clock.Width + 700)
  51.             FRM_Clock.Top = Pixels_To_Twips(MyRect.Top) + 75
  52.         End If
  53.     End If
  54.     
  55.     msg$ = ""
  56.     For X% = 1 To MaxItems
  57.         msg$ = msg$ + GetInfo(DispInfo(X%))
  58.     Next X%
  59.     msg$ = RTrim$(msg$)
  60.     
  61.     FRM_Clock.Backcolor = bColour
  62.     FRM_Clock.ForeColor = fColour
  63.     FRM_Clock.CurrentX = ((FRM_Clock.Width - TextWidth(msg$)) / 2)
  64.     FRM_Clock.CurrentY = ((FRM_Clock.Height - TextHeight(msg$)) / 2)
  65.     FRM_Clock.Print msg$
  66. End Sub
  67.  
  68. Sub Form_DblClick ()
  69.     ShowOptions
  70. End Sub
  71.  
  72. Sub Form_Load ()
  73.     Const TempLen = 250
  74.     Dim TempStr As String * TempLen
  75.         
  76.     On_top% = SetWindowPos(FRM_Clock.hWnd, -1, 0, 0, 0, 0, &H2 Or &H1 Or &H40 Or &H10)
  77.     sm% = FRM_Clock.scalemode
  78.     FRM_Clock.scalemode = 1
  79.     Scale_Twip = FRM_Clock.ScaleWidth
  80.     FRM_Clock.scalemode = 3
  81.     Scale_Pixel = FRM_Clock.ScaleWidth
  82.     FRM_Clock.scalemode = sm%
  83.     
  84.     ' get windows directory for INI file
  85.     uh% = GetWindowsDirectory(TempStr, TempLen)
  86.     IniFile$ = TrimZeroTerm(TempStr)
  87.     If Right$(IniFile$, 1) <> "\" Then IniFile$ = IniFile$ + "\"
  88.     IniFile$ = IniFile$ + "VBCLOCK.INI"
  89.     
  90.     ' get & set position from INI file
  91.     FRM_Clock.Top = GetPrivateProfileInt("Position", "Top", Int(Screen.Height * .003), IniFile$)
  92.     FRM_Clock.Left = GetPrivateProfileInt("Position", "Left", Int(Screen.Width * .71), IniFile$)
  93.     IsFloat = GetPrivateProfileInt("Position", "Floating", True, IniFile$)
  94.     If IsFloat And (FRM_Clock.Left <= Pixels_To_Twips(15)) And (FRM_Clock.Top <= Pixels_To_Twips(15)) Then FRM_Clock.Left = Pixels_To_Twips(20)
  95.  
  96.     ' get & set colours from INI file
  97.     uh% = GetPrivateProfileString("Colour", "Background", Format$(ACTIVE_TITLE_BAR), TempStr, TempLen, IniFile$)
  98.     bColour = Val(TempStr)
  99.     uh% = GetPrivateProfileString("Colour", "Foreground", Format$(INACTIVE_TITLE_BAR), TempStr, TempLen, IniFile$)
  100.     fColour = Val(TempStr)
  101.     
  102.     ' get & set typeface
  103.     uh% = GetPrivateProfileString("Typeface", "Font", "MS Sans Serif", TempStr, TempLen, IniFile$)
  104.     DispFont = TrimZeroTerm(TempStr)
  105.     uh% = GetPrivateProfileString("Typeface", "Fontsize", "8.25", TempStr, TempLen, IniFile$)
  106.     DispFontSize = Val(TempStr)
  107.  
  108.     ' get & set display
  109.     DispInfo(1) = GetPrivateProfileInt("Display", "Info1", 1, IniFile$)
  110.     DispInfo(2) = GetPrivateProfileInt("Display", "Info2", 2, IniFile$)
  111.     DispInfo(3) = GetPrivateProfileInt("Display", "Info3", 5, IniFile$)
  112.     DispInfo(4) = GetPrivateProfileInt("Display", "Info4", 7, IniFile$)
  113.     For X% = 5 To MaxItems
  114.         nm$ = "Info" + Format$(X%)
  115.         DispInfo(X%) = GetPrivateProfileInt("Display", nm$, 6, IniFile$)
  116.     Next X%
  117.     
  118.     ' get & set alarm
  119.     IsAlarm = False
  120.     uh% = GetPrivateProfileString("Alarm", "Time", "0", TempStr, TempLen, IniFile$)
  121.     AlarmTime = Val(TempStr)
  122.     If AlarmTime > Now Then
  123.         IsAlarm = True
  124.         uh% = GetPrivateProfileString("Alarm", "Message", "", TempStr, TempLen, IniFile$)
  125.         AlarmMessage = TrimZeroTerm(TempStr)
  126.     End If
  127.  
  128.     SetForm
  129.     DisplayInfo
  130. End Sub
  131.  
  132. Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
  133.   If (Button And LEFT_BUTTON) > 0 Then
  134.     AllowFormToMove = True
  135.     MStartX = X
  136.     MStartY = Y
  137.     MousePointer = SIZE_POINTER
  138.   End If
  139. End Sub
  140.  
  141. Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
  142.   If AllowFormToMove Then Move FRM_Clock.Left + (X - MStartX), FRM_Clock.Top + (Y - MStartY)
  143. End Sub
  144.  
  145. Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
  146.   RButt = (Button And RIGHT_BUTTON) > 0
  147.   LButt = (Button And LEFT_BUTTON) > 0
  148.   Ctrl = (Shift And CTRL_MASK) > 0
  149.   
  150.   If LButt Then
  151.     AllowFormToMove = False
  152.     MousePointer = DEFAULT
  153.   ElseIf RButt Then
  154.     Select Case Ctrl
  155.       Case False
  156.         ShowOptions
  157.       Case True
  158.         End
  159.     End Select
  160.   End If
  161. End Sub
  162.  
  163. Sub Form_Unload (Cancel As Integer)
  164.     WriteProfile
  165. End Sub
  166.  
  167. Sub SetForm ()
  168.     FRM_Clock.FontName = DispFont
  169.     FRM_Clock.FontSize = DispFontSize
  170.     FRM_Clock.FontBold = True
  171.  
  172.     msg$ = ""
  173.     For X% = 1 To MaxItems
  174.         msg$ = msg$ + GetInfo(DispInfo(X%))
  175.     Next X%
  176.     msg$ = RTrim$(msg$)
  177.  
  178.     FRM_Clock.Width = TextWidth(msg$) * 1.05
  179.     FRM_Clock.Height = TextHeight(msg$) * 1.15
  180. End Sub
  181.  
  182. Sub ShowOptions ()
  183.     Timer1.Enabled = False
  184.     FRM_Opts.Show 1
  185.     Timer1.Enabled = True
  186.     SetForm
  187.     WriteProfile
  188.     DisplayInfo
  189. End Sub
  190.  
  191. Sub Timer1_Timer ()
  192.     DisplayInfo
  193.     If IsAlarm Then
  194.         If AlarmTime <= Now Then
  195.             MessageBeep (48)
  196.             If AlarmMessage = "" Then AlarmMessage = "It's that time!"
  197.             MsgBox AlarmMessage, 48, "Alarm"
  198.             IsAlarm = False
  199.             FRM_Opts.CHK_Alarm.Value = 0
  200.         End If
  201.     End If
  202. End Sub
  203.  
  204. Sub WriteProfile ()
  205.   uh = WritePrivateProfileString("Colour", "Background", Format$(bColour), IniFile$)
  206.   uh = WritePrivateProfileString("Colour", "Foreground", Format$(fColour), IniFile$)
  207.   uh = WritePrivateProfileString("Typeface", "Font", DispFont, IniFile$)
  208.   uh = WritePrivateProfileString("Typeface", "Fontsize", Format$(DispFontSize), IniFile$)
  209.   
  210.   uh = WritePrivateProfileString("Position", "Floating", Format$(IsFloat), IniFile$)
  211.   If Not IsFloat Then
  212.     uh = WritePrivateProfileString("Position", "Top", Format$(FRM_Clock.Top), IniFile$)
  213.     uh = WritePrivateProfileString("Position", "Left", Format$(FRM_Clock.Left), IniFile$)
  214.   End If
  215.  
  216.   If IsAlarm Then
  217.     uh = WritePrivateProfileString("Alarm", "Time", Format$(AlarmTime), IniFile$)
  218.     uh = WritePrivateProfileString("Alarm", "Message", AlarmMessage, IniFile$)
  219.   End If
  220.    
  221.   For X% = 1 To MaxItems
  222.     nm$ = "Info" + Format$(X%)
  223.     uh = WritePrivateProfileString("Display", nm$, Format$(DispInfo(X%)), IniFile$)
  224.   Next X%
  225. End Sub
  226.  
  227.